# 函数基本操作
import random

"""
函数：复用
    定义调用：
        def 函数名([参数,...]): # [] 代表可有可无
            代码
        函数名： get_name() 多个单词下划线分割
                search()    单词
        代码： 封装重复内容
    调用机制：（函数名）
        1、先加载导内存
        2、使用必须调用     
    注意：
        1. 参数传递：类型属于对象，对象有不同类型的区分，变量是没有类型的： 
        2. 默认参数的顺序都是固定的，在赋值如果顺序不固定，需要关键字参数：参数名=value 如 login(name, password='1234') 
    参数：
        单参数、多参数
        形参、实参
"""


#  函数也是一个变量
def create_verification_code():
    code = ''
    while len(code) < 4:
        result = random.randint(0, 127)
        if ord('a') <= result <= ord('z') or ord('A') <= result <= ord('Z'):
            code += chr(result)
        elif 0 <= result <= 9:
            code += str(result)
    print(code)


print(create_verification_code)  # <function create_verification_code at 0x00000218317180D8>：函数也是一个变量，分配内存空间
# 验证函数是否可用
create_verification_code()

'''
定义一个login函数
admin 1234
输入用户名密码验证正确
'''


# 定义一个登录函数
def login(username, password, is_remember=False):  # 默认值参数
    if 'admin'.__eq__(username) and '1234'.__eq__(password):
        return '登录成功'
    else:
        return '用户名或者密码错误，登录失败！'


name = input('请输入用户名：')
pwd = input('请输入密码：')
rst = login(name, pwd)
print(rst)

rst = login(name, password='1234')  # 默认参数赋值
print(rst)

# 形参、实参

library = ['西游记', '红楼梦', '三国演义', '水浒传']


# 添加书
def add_book(book_name):
    library.append(book_name)


# 打印书
def show_book(books):
    for book in books:
        print(book)


add_book('明清那些事') # 添加书
print(show_book(library))
